/*
题目描述
编写一个函数，由实参传来一个字符串，统计这个字符串中字母、数字、空格和其他字符的个数。在主函数中输入字符串，并在主函数中输出上述结果。

输入
一行字符，可能包含空格。保证字符串的长度不超过100。

输出
分别输出这行字符中的英文字母、空格、数字和其他字符的个数，用空格隔开。
请注意行尾输出换行。
*/
#include <stdio.h>
#include <string.h>
int count(char str[], int *arr)
{
    int letter = 0, num = 0, space = 0, other = 0;
    for (int i = 0; str[i] != '\0'; i++)
    {
        char ch = str[i];
        if (ch >= 'A' && ch <= 'Z' || ch >= 'a' && ch <= 'z')
        {
            letter++;
        }
        else if (ch == ' ')
        {
            space++;
        }
        else if (ch >= '0' && ch <= '9')
        {
            num++;
        }
        else
        {
            other++;
        }
    }
    *(arr + 0) = letter;
    *(arr + 1) = num;
    *(arr + 2) = space;
    *(arr + 3) = other;
    return 0;
}
int main()
{
    char str[1000];
    fgets(str, sizeof(str), stdin);
    int len = strlen(str);
    if (len > 0 && str[len - 1] == '\n')
    {
        str[len - 1] = '\0';
    }
    int res[4];
    count(str,res);
    printf("%d %d %d %d\n", res[0], res[1], res[2], res[3]);
    return 0;
}